在 Python 中将 XML 转换为字典 您所在的位置:网站首页 python 将字符串转字典 在 Python 中将 XML 转换为字典

在 Python 中将 XML 转换为字典

2023-07-15 01:44| 来源: 网络整理| 查看: 265

在 Python 中使用 xmltodict 模块将 XML 字符串转换为字典 在 Python 中使用 cElemenTree 库将 XML 字符串转换为字典

XML 被称为可扩展标记语言。它用于存储和传输中小量数据,也广泛用于共享结构化信息。Python 使我们能够解析和修改 XML 文档。

在本教程中,我们将演示如何在 Python 中将 XML 字符串转换为字典。

计算碎片化

Please enable JavaScript

计算碎片化 在 Python 中使用 xmltodict 模块将 XML 字符串转换为字典

xmltodict 是 Python 中的一个模块,它使使用 XML 感觉像 JSON。由于 XML 的结构,可以使用此模块轻松将其转换为字典。

请参考下面的代码片段。

import xmltodict xml_data = """ DEL Jack [email protected] 8 CSE 7.5 """ d = xmltodict.parse(xml_data) print(d)

输出:

OrderedDict([('student', OrderedDict([('id', 'DEL'), ('name', 'Jack'), ('email', '[email protected]'), ('smeseter', '8'), ('class', 'CSE'), ('cgpa', '7.5')]))])

在这里,我们可以看到结果是一个有序字典的形式。有序字典保留字典中键值对的顺序。parse() 函数在这里将 XML 数据解析为有序字典。

在 Python 中使用 cElemenTree 库将 XML 字符串转换为字典

cElementTree 是一个必不可少的 Python 库,允许我们解析和导航 XML 文档。使用 cElementTree,我们可以将 XML 文档分解为易于使用的树结构。

我们将创建自己的函数来解析 XML 数据并将其转换为字典。我们将使用 collections 模块中的 deafultdict 类对象以我们想要的形式获得最终结果。

请参考以下代码。

from collections import defaultdict from xml.etree import cElementTree as ET def xml2dict(t): d = {t.tag: {} if t.attrib else None} children = list(t) if children: dd = defaultdict(list) for dc in map(etree_to_dict, children): for k, v in dc.items(): dd[k].append(v) d = {t.tag: {k: v[0] if len(v) == 1 else v for k, v in dd.items()}} if t.attrib: d[t.tag].update(('@' + k, v) for k, v in t.attrib.items()) if t.text: text = t.text.strip() if children or t.attrib: if text: d[t.tag]['#text'] = text else: d[t.tag] = text return d xml_data = ET.XML(""" DEL Jack [email protected] 8 CSE 7.5 """) d = xml2dict(xml_data) print(d)

输出:

{'student': {'id': 'DEL', 'name': 'Jack', 'email': '[email protected]', 'smeseter': '8', 'class': 'CSE', 'cgpa': '7.5'}}

请注意,这是字典的树结构。请注意,最终字典通常是这两种方法中的嵌套字典。这是由于 XML 的结构造成的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有